#include <iostream>
#include <iomanip>

// 黑塔女士的普通攻击可以对一名敌人造成一点伤害。
// 此外，黑塔女士的天赋，会在敌人的生命值首次降低到初始值的二分之一（向下取整）时，立即发动追加攻击，对所有敌人造成一点伤害。
// 追加攻击造成的伤害可以继续触发追加攻击，且多个敌人的生命值同时下降到二分之一时，每个敌人都可以触发一次追加攻击。
// 现在有许多敌人，黑塔女士应该如何用最少的普通攻击消灭所有敌人呢？

// 输入
// 一个长度为n整数数组a， 表示有n名敌人，第i名敌人初始生命值为a[i]。
// 输出
// 一个整数，表示消灭所有敌人最少需要的普通攻击次数。
using namespace std;

void sort(int a[],int len)
{
    for (int j = 1; j < len; j++)
    {
        for (int i = 0; i < len-j; i++)
        {
            if (a[i]>a[i+1])
            {
                int temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            }            
        }
    }
}

void aoe(int a[],int len)
{
    for (int i = 0; i < len; i++)
    {
        if(a[i]>0)a[i]--;
    }
    
}

int attack(int a[],int b[],int len,int n)
{
    int attack_num=0;
    for (;a[n]>b[n]/2; a[n]--) attack_num++;

    for (int i = n; i < len; i++)
    {
        if (a[i]<=b[i]/2) 
        {
            aoe(a,len);
            continue;
        }
        else break;
    } 
    return attack_num;
}

int get_num(int a[],int len)
{
    int num=0;
    for (int i = 0; i < len; i++)if(a[i]>0)num++;
    return num;
}

int main()
{
    int n;
    int attack_num=0;
    cin>>n;
    int X[n];
    int X_copy[n];
    for (int i = 0; i < n; i++) cin>>X[i];
    sort(X,n);
    for (int i = 0; i < n; i++) X_copy[i]=X[i];
    int num = get_num(X,n);

    if (num>=X[n-1])
    {
        for (int i = 0; i < n; i++)
        {
            if (X[i]>0)
            {
                attack_num += attack(X,X_copy,n,i);
            }
        }
    }
    else
    {
        for (int i = n-1; i>=0; i--)
        {
            if(X[i]>num)
            {
                attack_num += (X[i]-num);
                X[i] = num;
            }
            
        }
        for (int i = n-1; i>=0; i--)
        {
            if(X[i]<=X_copy[i]/2)
            {
                aoe(X,n);
                for (int j = 0; j < n-i; j++)
                {
                    if (X[j]<=X_copy[j]/2) 
                    {
                        aoe(X,n);
                        continue;
                    }
                    else break;
                } 
            }
        }
        
        for (int i = 0; i < n; i++)
        {
            if (X[i]>0)
            {
                attack_num += attack(X,X_copy,n,i);
            }
        }
    }
    cout<<"黑塔攻击总次数为:"<<attack_num<<endl;

    return 0;
}